layui.config({
    base: basePath,
    version: skyeyeVersion
}).extend({
    window: 'js/winui.window'
}).define(['window', 'jquery', 'winui', 'form'], function (exports) {
    winui.renderColor();
    var $ = layui.$,
        form = layui.form;
    var tenantId = GetUrlParam("tenantId");
    if (!tenantId) {
        winui.window.msg('缺少必要参数', { icon: 2, time: 2000 });
        return;
    }

    // 存储所有应用数据
    var allApps = [];

    // 初始化加载数据
    loadApplications();

    // 加载应用数据
    function loadApplications() {
        $("#appCardsContainer").html('<div class="layui-progress layui-progress-big" lay-showpercent="true" lay-filter="loadProgress" style="margin-top:100px;"><div class="layui-progress-bar" lay-percent="0%"></div></div>');

        AjaxPostUtil.request({
            url: reqBasePath + "queryTenantAppLinkList",
            params: { tenantId: tenantId },
            type: 'json',
            method: 'POST',
            callback: function (json) {
                if (json.returnCode === 0) {
                    allApps = json.rows || [];
                    if (allApps.length > 0) {
                        renderAppCards(allApps);
                        $("#emptyData").hide();
                    } else {
                        $("#appCardsContainer").empty();
                        $("#emptyData").show();
                    }
                } else {
                    winui.window.msg(json.returnMessage, { icon: 2, time: 2000 });
                    $("#appCardsContainer").empty();
                    $("#emptyData").show();
                }
            }
        });
    }

    // 渲染应用卡片
    function renderAppCards(apps) {
        // 直接生成HTML而不使用showGrid
        var html = '';

        apps.forEach(function (app) {
            var appName = app.appMation ? app.appMation.name || '未命名应用' : '未命名应用';
            var appRemark = app.appMation ? app.appMation.remark || '暂无描述' : '暂无描述';
            var startTime = app.startTime || '';
            var endTime = app.endTime || '';

            // 计算状态
            var status = '正常';
            var statusClass = 'status-active';
            if (endTime) {
                var endDate = new Date(endTime.replace(/-/g, '/'));
                var today = new Date();
                if (endDate < today) {
                    status = '已过期';
                    statusClass = 'status-expired';
                }
            }

            // 生成卡片HTML
            html += '<div class="app-card" data-name="' + (appName || '').toLowerCase() + '" data-desc="' + (appRemark || '').toLowerCase() + '">';
            html += '  <div class="app-card-header">';
            html += '    <div class="app-icon"><i class="layui-icon layui-icon-app"></i></div>';
            html += '    <div class="app-name">' + appName + '</div>';
            html += '  </div>';
            html += '  <div class="app-card-body">';
            html += '    <div class="app-desc">' + appRemark + '</div>';
            html += '    <div class="app-info">';
            html += '      <span>开始日期: ' + startTime + '</span>';
            html += '    </div>';
            html += '    <div class="app-info">';
            html += '      <span>到期日期: ' + endTime + '</span>';
            html += '    </div>';
            html += '    <div class="app-status ' + statusClass + '">' + status + '</div>';
            html += '  </div>';
            html += '</div>';
        });

        $("#appCardsContainer").html(html);
    }

    // 搜索应用
    function searchApps(keyword) {
        if (!keyword || keyword.trim() === '') {
            renderAppCards(allApps);
            return;
        }

        keyword = keyword.toLowerCase().trim();
        var filteredApps = allApps.filter(function (app) {
            var appName = app.appMation && app.appMation.name ? app.appMation.name.toLowerCase() : '';
            var appDesc = app.appMation && app.appMation.remark ? app.appMation.remark.toLowerCase() : '';

            return appName.indexOf(keyword) > -1 || appDesc.indexOf(keyword) > -1;
        });

        if (filteredApps.length > 0) {
            renderAppCards(filteredApps);
        } else {
            var html = '<div class="empty-data">';
            html += '<i class="layui-icon layui-icon-search"></i>';
            html += '<p>没有找到匹配的应用</p>';
            html += '</div>';
            $("#appCardsContainer").html(html);
        }
    }

    // 搜索图标点击事件
    $("#searchBtn").on("click", function () {
        var keyword = $("#searchInput").val();
        searchApps(keyword);
    });

    // 回车键触发搜索
    $("#searchInput").on("keypress", function (e) {
        if (e.which === 13) {
            var keyword = $(this).val();
            searchApps(keyword);
        }
    });

    // 清空搜索框时恢复所有应用显示
    $("#searchInput").on("input", function () {
        if ($(this).val() === '') {
            renderAppCards(allApps);
        }
    });

    // 刷新按钮点击事件
    $("body").on("click", "#reloadTable", function () {
        loadApplications();
        layer.msg('数据已刷新', { icon: 1, time: 1000 });
    });

    // 重试按钮点击事件
    $("body").on("click", "#retryBtn", function () {
        loadApplications();
    });

    form.render();
    exports('purchasedService', {});
});
